Field of the Invention
The present invention generally relates to execution of compute tasks and, more specifically, to error-checking compute tasks immediately prior to their execution.
Description of the Related Art
Conventional execution of compute tasks in multiple processor systems involves receiving processing tasks from a stream of commands that encode state information for configuring the multiple processors interleaved with data to be processed, where the data is processed in the order that the data appears in the stream. In particular, data that comprises a compute task is received, error-checked by an error-checking component, and then queued for execution.
Importantly, a proliferation in the implementation of out-of-order execution of compute tasks is occurring. One technique for implementing out-of-order execution of compute tasks involves receiving pointers to data objects that comprise compute tasks, as opposed to receiving all of the data that comprises the compute tasks as in conventional methods. Thus, implementing the conventional method of error-checking compute tasks upon receipt would involve receiving a memory pointer to data that comprises a compute task, reading the data from the memory, error-checking the data, and then queuing the pointer for out-of-order execution. Subsequently, when the compute task pointer is removed from the queue for execution, the data referred to by the pointer must be re-read from memory, which is redundant and inefficient.
Accordingly, what is needed in the art is a system and method for a more efficient way of error-checking compute tasks in out-of-order execution implementations.